from django.views import View
from django.http import JsonResponse
from .models import *
from datetime import datetime
import json
# 获取推荐的招聘信息列表
class RecommendPositionView(View):
    def get(self,request):
        # 获取招聘信息表的全部数据
        recruit = Recruit.objects.all()
        # 创建返回数据的空列表
        re_list = []
        # 企业表
        enter_list =[]
        for i in recruit:
            # 根据循环的数据的id 获取企业表的数据
            enterprise = Enterprise.objects.get(id=i.enterprise_id)
            a = enterprise.count()
            # 将企业表的数据舔加到空列表中
            enter_list.append({
                'id':enterprise.id,
                'name':enterprise.name,
                'labels':enterprise.labels,
                'logo':str(enterprise.logo),
                'recruits':a,
                'summary':enterprise.summary
            })
            # 将循环获取到的数据添加到列表中
            re_list.append({
                'id':i.id,
                'jobname':i.jobname,
                'salary':i.salary,
                'education':i.education,
                'type':i.type,
                'createtime':datetime.strftime(i.createtime, '%Y-%m-%d'),
                'enterprise':enter_list,
                'labels':i.labels
            })
        return JsonResponse({'data':re_list,"errno": "0"})

# 获取最新的招聘信息列表
class NewestPositionView(View):
    def get(self,request):
        # 获取招聘信息表的全部数据
        recruit = Recruit.objects.all()
        # 创建返回数据的空列表
        re_list = []
        # 企业表
        enter_list =[]
        for i in recruit:
            # 根据循环的数据的id 获取企业表的数据
            enterprise = Enterprise.objects.get(id=i.enterprise_id)
            a = enterprise.count()
            # 将企业表的数据舔加到空列表中
            enter_list.append({
                'id':enterprise.id,
                'name':enterprise.name,
                'labels':enterprise.labels,
                'logo':str(enterprise.logo),
                'recruits':a,
                'summary':enterprise.summary
            })
            # 将循环获取到的数据添加到列表中
            re_list.append({
                'id':i.id,
                'jobname':i.jobname,
                'salary':i.salary,
                'education':i.education,
                'type':i.type,
                'createtime':datetime.strftime(i.createtime, '%Y-%m-%d'),
                'enterprise':enter_list,
                'labels':i.labels
            })
        return JsonResponse({'data':re_list,"errno": "0"})

# 获取热门企业列表
class HotEnterpriseView(View):
    def get(self,request):
        # 连接企业表
        try:
            enterprise_data = Enterprise.objects.all()
        except Exception as e:
            return JsonResponse({'errno': '数据获取失败'}, status=400)
        enterprise_list = []
        for i in enterprise_data:
            Recruit_data = Recruit.objects.filter(id=i.id).all()
            enterprise_image = f'http://s7g9jujrf.hn-bkt.clouddn.com/{i.logo}'
            a = Recruit_data.count()
            enterprise_list.append({
                'id':i.id,
                'name':i.name,
                'labels':i.labels,
                'logo':enterprise_image,
                'recruits':a,
                'summary':i.summary
            })
        return JsonResponse({'data':enterprise_list,"errno": "0"})


# 获取热门城市
class HotCityView(View):
    def get(self,request):
        # 判断是否能获取到数据
        try:
            # 获取城市表数据
            city_data = City.objects.all()
        except Exception as e:
            return JsonResponse({'errno': '数据获取失败'}, status=400)
        city_list = []
        for i in city_data:
            # 将需要返回给前端的数据存入列表中
            city_list.append({
                'id':i.id,
                'name':i.name,
                'ishot':i.ishot
            })
        return JsonResponse({'data':city_data,'success':'true'})


